package com.java.thread.synchroniz;

/**
 * 如果一个类继承Thread，则不适合资源共享。 <br/>
 * 但是如果实现了Runable接口的话，则很容易的实现资源共享。 最为典型的当时售票系统
 * 当然买票是个耗时的操作，这是一个过程，我们如果每个线程出现等待的话将会产生票数为负数的问题。<br/>
 * 那么将需要采用同步线程去实现。
 * 所以采用同一时间智能允许一个人购买票才能解决这个问题
 * @author admin
 *
 */
public class ShareThread implements Runnable {
	private int ticket = 5;// 票数

	@Override
	public void run() {
		for (int i = 0; i <= 20; i++) {
			if (this.ticket > 0) {
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				System.out.println(Thread.currentThread().getName() + "正在卖票" + this.ticket--);
			}
		}
	}

	public static void main(String[] args) {
		ShareThread st1 = new ShareThread();
		new Thread(st1, "1号窗口").start();
		new Thread(st1, "2号窗口").start();
		new Thread(st1, "3号窗口").start();
	}

}
